package beans;

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import model.Beneficiario;
import model.ClientesListar;
import model.ConnectDb;
import model.Dependentes;
import model.FormaPagto;
import dao.BeneficiarioJDBCCadastro;
import dao.DependentesJDBCCadastro;
import dao.FormaPagtoJDBCCadastro;
import dao.PersistConexao;
import dao.ClientesJDBCCadastro;

public class ClientesLocalizar {
	static String cliid = "";
	private ConnectDb connectdb = new ConnectDb();
	String schema = connectdb.getSchema_producao();
	String user = connectdb.getUser();
	String pass = connectdb.getPass();
	Integer count = 0;

	private ClientesListar clientelistar = new ClientesListar();
	private List<ClientesListar> clientesLista;
	private Dependentes editdependente = new Dependentes();
	private List<Dependentes> dependentesLista;
	private Beneficiario editbeneficiario = new Beneficiario();
	private List<Beneficiario> beneficiariosLista;
	private FormaPagto editformapagto = new FormaPagto();
	private List<FormaPagto> formapagtoLista;
	private ClientesListar editCliente = new ClientesListar();

	public ClientesLocalizar() {
		// dependentesLista = new ArrayList<Dependentes>();
		beneficiariosLista = new ArrayList<Beneficiario>();
		formapagtoLista = new ArrayList<FormaPagto>();
		clientesLista = new ArrayList<ClientesListar>();

		if (clientesLista.isEmpty()) {
			addlistclientes();
		}
	}

	public void addlistclientes() {
		count = 0;
		ResultSet resp = null;
		PersistConexao persistconexao = new PersistConexao();
		Connection conexao = persistconexao.openConecao(schema, user, pass);
		ClientesJDBCCadastro dao = new ClientesJDBCCadastro(conexao);
		resp = dao.ListarClientesT();
		try {
			resp.first();
			while (!resp.isAfterLast()) {
				clientelistar.setCdcliente(resp.getString("CDCLIENTE"));
				clientelistar.setNmcliente(resp.getString("NMCLIENTE"));
				clientelistar.setNucpf(resp.getString("NUCPF"));
				clientelistar.setNuidentid(resp.getString("NUIDENTID"));
				/**
				 * Date dtnasc = null; try { String date =
				 * resp.getString("DTNASCIMENTO"); SimpleDateFormat dateFormat =
				 * new SimpleDateFormat("dd/MM/yyyy"); dtnasc =
				 * dateFormat.parse(date); } catch (Exception e) {
				 * System.out.println("****Erro ao converter data*****"); }
				 * clientelistar.setDtnascimento(dtnasc);
				 **/
				clientelistar.setDtnascimento(resp.getString("DTNASCIMENTO"));
				clientelistar.setNufone1(resp.getString("NUFONE1"));
				clientelistar.setNufone2(resp.getString("NUFONE2"));
				clientelistar.setNufone3(resp.getString("NUFONE3"));
				clientelistar.setDsendereco(resp.getString("DSENDERECO"));
				clientelistar.setNucxpostal(resp.getString("NUCXPOSTAL"));
				clientelistar.setNmbairro(resp.getString("NMBAIRRO"));
				clientelistar.setNucep(resp.getString("NUCEP"));
				clientelistar.setNmuf(resp.getString("NMUF"));
				clientesLista.add(clientelistar);
				clientelistar = new ClientesListar();
				resp.next();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		persistconexao.closeConexao();
	}

	public void editar(String idcliente) {
		if (!(idcliente == "" || idcliente == null)) {
			ResultSet respc = null;
			PersistConexao persistconexao = new PersistConexao();
			Connection conexao = persistconexao.openConecao(schema, user, pass);
			ClientesJDBCCadastro daoclientes = new ClientesJDBCCadastro(conexao);
			respc = daoclientes.editarConsulta(idcliente);
			try {
				respc.first();
				editCliente.setCdcliente(respc.getString("CDCLIENTE"));
				editCliente.setNmcliente(respc.getString("NMCLIENTE"));
				editCliente.setNucpf(respc.getString("NUCPF"));
				editCliente.setNuidentid(respc.getString("NUIDENTID"));
				/**
				 * Date dtnasc = null; try { String date =
				 * respc.getString("DTNASCIMENTO"); SimpleDateFormat dateFormat
				 * = new SimpleDateFormat("dd/MM/yyyy"); dtnasc =
				 * dateFormat.parse(date); } catch (Exception e) {
				 * System.out.println("****Erro ao converter data*****"); }
				 * editCliente.setDtnascimento(dtnasc);
				 **/
				editCliente.setDtnascimento(respc.getString("DTNASCIMENTO"));
				editCliente.setNufone1(respc.getString("NUFONE1"));
				editCliente.setNufone2(respc.getString("NUFONE2"));
				editCliente.setNufone3(respc.getString("NUFONE3"));
				editCliente.setDsendereco(respc.getString("DSENDERECO"));
				editCliente.setNucxpostal(respc.getString("NUCXPOSTAL"));
				editCliente.setNmbairro(respc.getString("NMBAIRRO"));
				editCliente.setNucep(respc.getString("NUCEP"));
				editCliente.setNmuf(respc.getString("NMUF"));

			} catch (Exception e) {
				e.printStackTrace();
			}

			ResultSet respd = null;
			DependentesJDBCCadastro daodependentes = new DependentesJDBCCadastro(
					conexao);
			respd = daodependentes.editarConsulta(idcliente);
			try {
				respd.first();
				int tamanhod = respd.getRow();
				Dependentes editdependente = new Dependentes();
				List<Dependentes> dependentesLista = new ArrayList<Dependentes>();
				// dependentesLista = new ArrayList<Dependentes>();
				// editdependente = new Dependentes();
				// dependentesLista.clear();
				if (tamanhod != 0)
					while (!respd.isAfterLast()) {
						editdependente.setNmdependente(respd
								.getString("NMDEPENDENTE"));
						editdependente.setDtnascimento(respd
								.getDate("DTNASCIMENTO"));
						editdependente.setNumdocumento(respd
								.getString("NUMDOCUMENTO"));
						editdependente.setGrauparentesco(respd
								.getString("GRAUPARENTESCO"));
						dependentesLista.add(editdependente);
						editdependente = new Dependentes();
						respd.next();
					}

			} catch (Exception e) {
				e.printStackTrace();
			}

			ResultSet respb = null;
			BeneficiarioJDBCCadastro daobeneficiario = new BeneficiarioJDBCCadastro(
					conexao);
			respb = daobeneficiario.editarConsulta(idcliente);
			try {
				respb.first();
				// beneficiariosLista = new ArrayList<Beneficiario>();
				// editbeneficiario = new Beneficiario();
				int tamanhob = respb.getRow();
				if (tamanhob != 0)
					while (!respb.isAfterLast()) {
						editbeneficiario.setNmbeneficiario(respb
								.getString("NMBENEFICIARIO"));
						editbeneficiario.setGrauparentesco(respb
								.getString("GRAUPARENTESCO"));
						editbeneficiario.setDtinclusao(respb
								.getDate("DTINCLUSAO"));
						editbeneficiario.setBolativo(respb
								.getString("BOLATIVO"));
						beneficiariosLista.add(editbeneficiario);
						editbeneficiario = new Beneficiario();
						respb.next();
					}
			} catch (Exception e) {
				e.printStackTrace();
			}

			ResultSet respf = null;
			FormaPagtoJDBCCadastro daoformapagto = new FormaPagtoJDBCCadastro(
					conexao);
			respf = daoformapagto.editarConsulta(idcliente);
			try {
				respf.first();
				int tamanhof = respf.getRow();
				// formapagtoLista = new ArrayList<FormaPagto>();
				// editformapagto = new FormaPagto();
				if (tamanhof != 0)
					while (!respf.isAfterLast()) {
						editformapagto.setCdempresa(respf
								.getString("CDEMPRESA"));
						editformapagto.setNmformapagto(respf
								.getString("NMTPSERVICO"));
						editformapagto.setUsualteracao(respf
								.getString("NOMEUSUARIO"));
						formapagtoLista.add(editformapagto);
						editformapagto = new FormaPagto();
						respf.next();
					}

			} catch (Exception e) {
				e.printStackTrace();
			}
			persistconexao.closeConexao();
		}
	}

	public Dependentes getEditdependente() {
		return editdependente;
	}

	public void setEditdependente(Dependentes editdependente) {
		this.editdependente = editdependente;
	}

	public Beneficiario getEditbeneficiario() {
		return editbeneficiario;
	}

	public void setEditbeneficiario(Beneficiario editbeneficiario) {
		this.editbeneficiario = editbeneficiario;
	}

	public FormaPagto getEditformapagto() {
		return editformapagto;
	}

	public void setEditformapagto(FormaPagto editformapagto) {
		this.editformapagto = editformapagto;
	}

	public ClientesListar getEditCliente() {
		return editCliente;
	}

	public void setEditCliente(ClientesListar editCliente) {
		this.editCliente = editCliente;
	}

	public ClientesListar getClientelistar() {
		return clientelistar;
	}

	public void setClientelistar(ClientesListar clientelistar) {
		this.clientelistar = clientelistar;
	}

	public List<ClientesListar> getClientesLista() {
		if (!clientelistar.equals(null)) {
			// editar(clientelistar.getCdcliente());
			cliid = clientelistar.getCdcliente();
		}
		return clientesLista;
	}

	public void setClientesLista(List<ClientesListar> clientesLista) {
		this.clientesLista = clientesLista;
	}

	public List<Dependentes> getDependentesLista() {
		return dependentesLista;
	}

	public void setDependentesLista(List<Dependentes> dependentesLista) {
		this.dependentesLista = dependentesLista;
	}

	public List<Beneficiario> getBeneficiariosLista() {
		return beneficiariosLista;
	}

	public void setBeneficiariosLista(List<Beneficiario> beneficiariosLista) {
		this.beneficiariosLista = beneficiariosLista;
	}

	public List<FormaPagto> getFormapagtoLista() {
		return formapagtoLista;
	}

	public void setFormapagtoLista(List<FormaPagto> formapagtoLista) {
		this.formapagtoLista = formapagtoLista;
	}

}
